package org.skywork.top.core.algorithm.str;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 最长公共前缀
 */
public class no_14 {


    /**
     * 编写一个函数来查找字符串数组中的最长公共前缀。
     * 如果不存在公共前缀，返回空字符串 ""。
     *
     * 1 <= strs.length <= 200
     * 0 <= strs[i].length <= 200
     */
    public static String longestCommonPrefix(String[] strs) {
        if(strs.length == 0){
            return "";
        }

        if(strs.length == 1){
            return strs[0];
        }

        String prefix = strs[0];
        List<String> list = new ArrayList<>();
        for(int i = 0; i < prefix.length(); i++){
            list.add(prefix.substring(0, i + 1));
        }

        String result = "";
        for(String str : list){
            boolean flag = true;
            for(int i = 1; i < strs.length; i++){
                if(!strs[i].startsWith(str)){
                    flag = false;
                    break;
                }
            }

            if(flag){
                result = str;
            }else{
                break;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        String[] strs = {"a"};
        String s = longestCommonPrefix(strs);
        System.out.println(s);
    }
}
